package com.zhuiyun.project.api.appuser.service;

import com.zhuiyun.project.api.appuser.entity.User;
import com.zhuiyun.project.api.appuser.model.AppUserModel;
import com.zhuiyun.project.api.sysarticle.model.ArticleModel;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.util.pageUtil.PageRequest;
import com.zhuiyun.project.util.pageUtil.PageResult;

import java.util.List;
import java.util.Map;

public interface AppUserService {

    /**
     * 通过用户名获取用户信息
     *
     * @return java.util.List<com.zhuiyun.project.api.user.entity.user>
     * @author 温
     * @date 2023/6/5 17:51
     * @parameter [nickName, pageRequest]
     */
    PageResult userList(String userName, PageRequest pageRequest);


    /**
     * 前端用户禁言
     *
     * @return
     * @author 温
     * @date 2023/6/6 9:10
     * @parameter
     */
    int logOffList(User appuser);


    /**
     * 根据前端传来的id 和 注销原因来进行注销
     *
     * @return int
     * @author 温
     * @date 2023/6/20 20:02
     * @parameter [id, cancellationReason]
     */
    int useradd(Integer cancellationId, String cancellationReason);

    /**
     * @param userId
     * @Author kdj
     * @Description 根据userId获取user
     * @Date 2023/6/21 21:29
     * @Return com.zhuiyun.project.api.appuser.entity.User
     */
    User getUserByUserId(int userId);


    /**
     * @param id
     * @Author kdj
     * @Description 根据userID获取头像id
     * @Date 2023/6/27 10:20
     * @Return int
     */
    int getAvatarId(Integer id);


    /**
     * @param userId
     * @Author kdj
     * @Description 查询用户信息
     * @Date 2023/7/20 21:37
     * @Return com.zhuiyun.project.api.appuser.entity.User
     */
    Map userMain(int userId);


    /**
     * @param toId
     * @Author kdj
     * @Description 好友请求新消息数量
     * @Date 2023/7/21 16:20
     * @Return void
     */
    void addFriendNewNum(int toId);

    /**
     * @param userId
     * @param num
     * @Author kdj
     * @Description 修改请求好友的未读数
     * @Date 2023/7/21 16:41
     * @Return int
     */
    int upFriendNewNum(int userId, int num);


    /**
     * @Author 小江
     * @Description //TODO 去重手机号
     * @Date 15:07 2023/8/11
     **/

    CommonResult userTitle(String userPhone);

    /**
     * @param userId
     * @Author kdj
     * @Description 注销用户根据用户id
     * @Date 2023/8/14 16:04
     * @Return int
     */
    int toProhibition(int userId);
    /**
     * @param userId
     * @Author kdj
     * @Description 解封用户根据用户id
     * @Date 2023/8/14 16:04
     * @Return int
     */
    int openProhibition(int userId);
    /**
     * @param
     * @Author ys
     * @Description 根据手机号查询用户注销状态
     * @Date 2023/8/5 21:46
     * @Return int
     */
    CommonResult selectUserProhibition(String userPhone);
}
